curl --request PATCH \
--url http://10.2.4.166:8080/composer/api/folders/{folderId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/vnd.composer.v3+json' \
--header 'X-Enable-Preview: <x-enable-preview>' \
--data '
{
"name": "My Folder",
"description": "This folder contains dashboards"
}
'import requests
url = "http://10.2.4.166:8080/composer/api/folders/{folderId}"
payload = {
"name": "My Folder",
"description": "This folder contains dashboards"
}
headers = {
"X-Enable-Preview": "<x-enable-preview>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/vnd.composer.v3+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'X-Enable-Preview': '<x-enable-preview>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/vnd.composer.v3+json'
},
body: JSON.stringify({name: 'My Folder', description: 'This folder contains dashboards'})
};
fetch('http://10.2.4.166:8080/composer/api/folders/{folderId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://10.2.4.166:8080/composer/api/folders/{folderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Folder',
'description' => 'This folder contains dashboards'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/vnd.composer.v3+json",
"X-Enable-Preview: <x-enable-preview>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://10.2.4.166:8080/composer/api/folders/{folderId}"
payload := strings.NewReader("{\n \"name\": \"My Folder\",\n \"description\": \"This folder contains dashboards\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Enable-Preview", "<x-enable-preview>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/vnd.composer.v3+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("http://10.2.4.166:8080/composer/api/folders/{folderId}")
.header("X-Enable-Preview", "<x-enable-preview>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/vnd.composer.v3+json")
.body("{\n \"name\": \"My Folder\",\n \"description\": \"This folder contains dashboards\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://10.2.4.166:8080/composer/api/folders/{folderId}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Patch.new(url)
request["X-Enable-Preview"] = '<x-enable-preview>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/vnd.composer.v3+json'
request.body = "{\n \"name\": \"My Folder\",\n \"description\": \"This folder contains dashboards\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"parent_id": "<string>",
"materialized_path": "<string>",
"project_id": "<string>",
"project_type": "DEFAULT",
"permissions": [
"READ"
],
"visibility": "PRIVATE",
"inheritance_state": "INHERIT",
"folder_type": "CONNECTIONS",
"content_type": "DASHBOARDS"
}[Experimental] Partially update a folder's metadata
curl --request PATCH \
--url http://10.2.4.166:8080/composer/api/folders/{folderId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/vnd.composer.v3+json' \
--header 'X-Enable-Preview: <x-enable-preview>' \
--data '
{
"name": "My Folder",
"description": "This folder contains dashboards"
}
'import requests
url = "http://10.2.4.166:8080/composer/api/folders/{folderId}"
payload = {
"name": "My Folder",
"description": "This folder contains dashboards"
}
headers = {
"X-Enable-Preview": "<x-enable-preview>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/vnd.composer.v3+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'X-Enable-Preview': '<x-enable-preview>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/vnd.composer.v3+json'
},
body: JSON.stringify({name: 'My Folder', description: 'This folder contains dashboards'})
};
fetch('http://10.2.4.166:8080/composer/api/folders/{folderId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://10.2.4.166:8080/composer/api/folders/{folderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Folder',
'description' => 'This folder contains dashboards'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/vnd.composer.v3+json",
"X-Enable-Preview: <x-enable-preview>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://10.2.4.166:8080/composer/api/folders/{folderId}"
payload := strings.NewReader("{\n \"name\": \"My Folder\",\n \"description\": \"This folder contains dashboards\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Enable-Preview", "<x-enable-preview>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/vnd.composer.v3+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("http://10.2.4.166:8080/composer/api/folders/{folderId}")
.header("X-Enable-Preview", "<x-enable-preview>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/vnd.composer.v3+json")
.body("{\n \"name\": \"My Folder\",\n \"description\": \"This folder contains dashboards\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://10.2.4.166:8080/composer/api/folders/{folderId}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Patch.new(url)
request["X-Enable-Preview"] = '<x-enable-preview>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/vnd.composer.v3+json'
request.body = "{\n \"name\": \"My Folder\",\n \"description\": \"This folder contains dashboards\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"parent_id": "<string>",
"materialized_path": "<string>",
"project_id": "<string>",
"project_type": "DEFAULT",
"permissions": [
"READ"
],
"visibility": "PRIVATE",
"inheritance_state": "INHERIT",
"folder_type": "CONNECTIONS",
"content_type": "DASHBOARDS"
}Authorizations
HTTP Basic authentication using global administrator credentials (username and password).
Headers
Opt-in header required to access this experimental endpoint. Must be "true" (case-insensitive).
Path Parameters
Body
Response
OK
Response object describing a newly created folder
The unique identifier of the created folder
The name of the created folder
The folder's description; null when none was ever set
The id of the parent folder; null means this is a root folder
Full path from root; null for legacy folders not yet backfilled
The identifier of the project that owns the folder
The type of the owning project
DEFAULT, GLOBAL, CUSTOM, PERSONAL, LIBRARY_CUSTOM The caller's own effective permissions on this folder, as an array of FolderAclBit names (READ, WRITE, CREATE, DELETE, ADMINISTER, OWNER), e.g. ["READ","WRITE"]. Computed per caller at request time, so it reflects real access: the creator of a root folder is its owner and sees all six, while a subfolder resolves to whatever the caller holds on the governing ancestor. Matches what a permissions query for the same folder and caller returns.
READ, WRITE, CREATE, DELETE, ADMINISTER, OWNER The folder's visibility
PRIVATE, CUSTOM The folder's ACL inheritance state
INHERIT, EXPLICIT The type of the folder
CONNECTIONS, SOURCES, VISUALS, DASHBOARDS, REPORTS, PRIVATE, CUSTOM The library this folder organizes (DASHBOARDS or REPORTS), resolved by the server; null when untagged
DASHBOARDS, REPORTS Was this page helpful?